home *** CD-ROM | disk | FTP | other *** search
/ Libris Britannia 4 / science library(b).zip / science library(b) / ELECTRON / 1085.ZIP / FIRPLOT.ARC / READ.ME < prev    next >
Text File  |  1988-04-01  |  66KB  |  925 lines

  1.  
  2.  
  3.  
  4. Firplot is a program which calculates the filter coefficients for
  5. Finite Impulse Response (FIR) digital filters.  It will run on all
  6. PC-type computers.
  7.  
  8. If you intend to use FIRPLOT for serious work, rather than with
  9. the reduced capability of this version, use the order blank at the
  10. end of this file.  The advantage of having the full 128 stage
  11. capability is shown by examples in this file.
  12.  
  13.               Paul Selwa
  14.               61 East Tilden Dr.
  15.               Brownsburg, Indiana  46112
  16.  
  17.  
  18. FIR FILTERS.
  19.  
  20. There are various types of digital filters.  Of these the Finite
  21. Impulse Response (FIR) filter is the most useful.  It is
  22. unconditionally stable and has guaranteed linear phase response.
  23. It is resistant to the effects of noise and is the least sensitive
  24. type of digital filter to the effects of the precision (length) of
  25. the filter coefficients.
  26.  
  27.  
  28. CONSTRUCTION OF FIR DIGITAL FILTERS.
  29.  
  30. An FIR filter consists of the following components, some of which
  31. can exist in hardware or in software.
  32.  
  33. 1.  A low pass filter (LPF) to limit the bandwidth of the signal.
  34.     It is called an anti-alaising filter.
  35.  
  36. 2.  An analog-to-digital converter (ADC).  It may need to be
  37.     preceded by a sample and hold circuit if its conversion time
  38.     is long.
  39.  
  40. 3.  A data memory which saves the digitized samples of the signal
  41.     which is being processed.  Data is usually put into two's
  42.     complement form to be compatible with most multipliers.
  43.  
  44. 4.  A set of filter coefficients which are used to multiply the
  45.     data memory's samples.  These are usually in two's complement
  46.     (2C) form.
  47.  
  48. 5.  An accumulator which contains the sum-of-product terms which
  49.     are generated by multiplying the data memory contents by the
  50.     filter coefficients.
  51.  
  52. 6.  A multiplier chip, or a processor with multiplying capability.
  53.  
  54. 7.  A digital to analog converter (DAC) to change the filter's
  55.     output to an analog signal.
  56.  
  57. 8.  A low pass filter to remove noise from the output.  It is
  58.     called a reconstruction filter and passes the same frequency
  59.     components as does the anti-alaising filter.
  60.  
  61.  
  62. ALAISING:
  63.  
  64. Any digital filter has a bandwidth limitation which is set by the
  65. sampling rate of the input ADC which must be at least twice the
  66. bandwidth of the anti-alaising filter.  The folding frequency is
  67. defined as exactly one-half of the sampling rate and is
  68. theoretically the maximum frequency which the filter can handle
  69. without alaising problems.  When a signal is being sampled at a
  70. given rate, the signal's components are duplicated above and below
  71. each harmonic of the sampling frequency, just as they would appear
  72. as sidebands from an AM transmitter operating at the sampling
  73. frequency.  If you have a sampling rate of 10000 Hz and a signal
  74. of 1000 Hz you would get spurious outputs from the sampler at 9000
  75. Hz, (10000- 1000 Hz), and at 11000 Hz, (10000+1000 Hz), in
  76. addition to the baseband signal of 1000 Hz.  If the input signal's
  77. frequency was raised to 4999 Hz the sampler would produce sideband
  78. components at 5001 Hz, at 14999 Hz as well as the 4999 Hz baseband
  79. signal.  Clearly, the crossover point between the baseband signal
  80. and the lower sideband image of it will occur at one-half of the
  81. sampling rate.  Input signals of frequency greater than the
  82. folding frequency will appear as aliases of lower frequency
  83. signals.
  84.  
  85. FILTER COEFFICIENTS.
  86.  
  87. The stored data samples are all multiplied by the filter's
  88. coefficients, (also called filter taps), one-for-one in between
  89. the acquisition of each successive data sample.  The product of
  90. each of the multiply operations is accumulated and this sum-of-
  91. products result is a data word which is the filter's output until
  92. the next output value is calculated.
  93.  
  94. The program first calculates a coefficient set for a filter having
  95. unity gain (0 dB).  While these tap weights will produce a working
  96. filter, the set of numbers may not use the full 8 or 16 bit
  97. capability of the processor you are building unless your hardware
  98. can handle floating point math.  After finding the tap weights for
  99. the 0 dB filter, the program finds the largest valued coefficient
  100. and linearly scales all of them to gain the best use of fixed
  101. point hardware's mathematical range.  These results are printed in
  102. decimal and in 2C hexadecimal notation which has been scaled for a
  103. 16 bit machine.
  104.  
  105. The value of a 2C tap from the program will be equal to:
  106.  
  107.        -1*(sign bit) + (positive value of the remaining bits)
  108.  
  109. with the left-most remaining bit having a value of +0.5, the next
  110. having a value of +0.25 and so on.
  111.  
  112.  
  113. OPERATION OF AN FIR FILTER.
  114.  
  115. Suppose you need a length 5 FIR filter.  To make for easy notation
  116. I will refer to the data samples as D1-Dx, to the coefficients as
  117. C(1)-C(5).  and to the outputs as  O1-Ox.  After the fifth data
  118. sample is taken, the first useable output sample is produced.  The
  119. outputs prior to then will be unpredictable and you may want to
  120. mute the output until then.
  121.  
  122.             O1 = D1*C(5) + D2*C(4) + D3*C(3) + D4*C(2) + D5*C(1)
  123.  
  124. The output value O1 is placed in the output DAC.  Calculation is
  125. then halted until the 6th data sample appears. It replaces the
  126. first sample, and then the second output is calculated. In all
  127. cases, the new data sample replaces the oldest stored data sample.
  128.  
  129.             O2 = D2*C(5) + D3*C(4) + D4*C(3) + D5*C(2) + D6*C(1)
  130.  
  131. Output sample O2 is placed into the output DAC. Again the filter
  132. waits for the next data sample (which replaces the second sample),
  133. and then calculates the third output sample.
  134.  
  135.             O3 = D3*C(5) + D4*C(4) + D5*C(3) + D6*C(2) + D7*C(1).
  136.  
  137. This process is continued, and the filter produces outputs at the
  138. same rate as the incoming samples.
  139.  
  140. OUTPUT DATA PROCESSING:
  141.  
  142. The multiplication of two 16 bit 2C words produces a 32 bit
  143. product in which two identical sign bits occur. You will take the
  144. top 16 bits as your result after you perform a left shift of one
  145. bit to remove the redundant sign bit that results from the
  146. multiplication of two 2C numbers.  Some multipliers will provide
  147. this function automatically.
  148.  
  149. The 2C result may have to be changed back to simple binary code
  150. for the output DAC.  This is easily accomplished by inverting the
  151. sign bit position of the sum-of-products.   This will shift the 2C
  152. number to a value between zero and the maximum value your data
  153. variable can achieve.
  154.  
  155. USING FIRPLOT:
  156.  
  157. Start the program by entering its name without the "EXE" file
  158. extension.  The program will prompt you for a file-name so it can
  159. store the filter's parameters on disk.  This file holds all of
  160. your entries and all program data outputs.
  161.  
  162.  THE PROGRAM DOES NOT CHECK FOR AN EXISTING FILE OF THE SAME NAME.
  163.            USE CAUTION IN NAMING THE DISK FILE !!!!!!!!!
  164.  
  165. PROGRAM INPUTS:
  166.  
  167. The number of bands is the total of the passbands plus the
  168. stopbands.  A simple lowpass filter requires an entry of 2.
  169.  
  170. The filter length is an integer between 3 and 128 inclusive, but
  171. the length parameter is restricted to a smaller number in this
  172. shareware version of FIRPLOT.
  173.  
  174. The band edges can be entered as decimal fractions of the sampling
  175. rate, or as frequency variables.  For the former mode the numbers
  176. represent fractions of the sampling rate which can be anything
  177. your hardware can handle.  If you enter band edges as real
  178. frequency values, the program will prompt you for the actual
  179. sampling rate.  There are several checks provided as you enter
  180. these parameters.  For example, if you enter the passband and
  181. stopband edges as fractions of the sampling rate, and you call for
  182. a band edge greater than the folding frequency, which is 0.5, the
  183. program will go back to the first band edge so you can enter them
  184. again.  Similarly, if you had chosen to enter the band edges in
  185. terms of frequency and one of them is of a frequency greater than
  186. the folding frequency, the program will back up to the start of
  187. the routine.  This feature allows for easy escape from an error in
  188. band edge definition without going back to the start of the
  189. program.  In addition, if a valid band edge was entered out of
  190. sequence the program also returns to the start of the band edge
  191. entry routine.
  192.  
  193. You will enter parameters which define the bands as passbands or
  194. as stopbands.  In that way you define lowpass, highpass, bandpass
  195. and notch filters.
  196.  
  197. The final parameter is the RELATIVE ripple in the bands.  These
  198. are basically Chebyshev filters, but this is not the dB value of
  199. the ripple. It is the ratio of the ripple values in the filter's
  200. bands.  The actual ripple values are minimized by the program.
  201.  
  202. PROGRAM OUTPUTS:
  203.  
  204. The program starts computing the filter's taps after the relative
  205. ripple values are chosen.  The execution time is mainly
  206. proportional to the filter's length.  A 128 tap filter can easily
  207. take 15-20 minutes on a computer without a co-processor.  In
  208. general, a co-processor will cut the time by 80%.  Run time is not
  209. linearly related to filter length.  Short filters will run in
  210. seconds.  The program will automatically use a co-processor if
  211. there is one in the system.
  212.  
  213. The first output list is the impulse response of the filter.  It
  214. is named that because if a single data sample with a value of 1
  215. was fed into the filter, preceded and followed by zeros, the
  216. "impulse response" would show outputs equal to the filter's
  217. coefficients.  The next list is a version of the impulse response,
  218. which is scaled to force the maximum of the impulse response's
  219. absolute values to fall as close as possible to "-1" if the
  220. largest coefficient was negative, or to "+1-(one LSB of a 16 bit
  221. binary 2C number)" if the largest absolute value was a positive
  222. number.  The gain change that this causes in the filter's output
  223. level is printed at the top of the scaled impulse response
  224. listing.
  225.  
  226. The accompanying two's complement hex listing is based on a 16 bit
  227. fixed point hardware system.  If you want to use a smaller operand
  228. pick the number of bits you wish, starting with the MSB of the hex
  229. number.
  230.  
  231. The next output data is a list of the filter's gain as a function
  232. of frequency.  Its resolution is in steps of 0.05*(sampling rate).
  233.  
  234. The filter's gain data is plotted and is stored on disk.  First,
  235. in a compressed form which fits on the CRT and provides you with a
  236. quick look at the filter's response curve,  and second, in 1 dB
  237. resolution if you request that output.  The 1 dB plot is optional
  238. because it will also go to the disk well as to the CRT and really
  239. eats up disk space.  The detailed plot contains characters to
  240. indicate the direction of amplitude changes since high order
  241. filters have stopband nulls that are very close together.
  242.  
  243. PROBLEMS.
  244.  
  245. There are conditions you can ask for that the program cannot
  246. handle.  These are usually in terms of extremely sharp cutoff
  247. requirements and will cause either a divide by zero error, or in a
  248. failure to converge to a mathematical solution.  The first type of
  249. error will be flagged by your operating system, and the second by
  250. the filter design program.  There are no known problems in the
  251. program, and it is based on a well proven algorithm.
  252.  
  253. EXAMPLES: 
  254.  
  255. Some data has been removed from the larger problems to save disc space.
  256.  
  257.                    ***   START OF THE NEXT FILTER PROBLEM   ***
  258.                            THIS FILE IS;   A:DEMO
  259.  
  260.  BANDPASS FILTER
  261.  
  262.  THE NUMBER OF BANDS =    2
  263.  THE FILTER LENGTH  =     9
  264.  THE SAMPLING RATE IS                 5000
  265.  
  266.  THE BAND EDGES ARE IN Hz.
  267.  
  268.            EDGE #  1 =                 .000
  269.            EDGE #  2 =             1000.000
  270.            EDGE #  3 =             2000.000
  271.            EDGE #  4 =             2500.000
  272.  
  273.  
  274.  BAND #  1 IS A PASSBAND
  275.  BAND #  2 IS A STOPBAND
  276.  
  277.  THE RELATIVE RIPPLE CONSTANTS ARE:
  278.  BAND #  1 RIPPLE CONSTANT =       1.23
  279.  BAND #  2 RIPPLE CONSTANT =       9.44
  280. **********************************************************************
  281.  
  282.                          FINITE IMPULSE RESPONSE (FIR)
  283.                          LINEAR PHASE DIGITAL FILTER
  284.                           REMEZ EXCHANGE ALGORITHM
  285.  
  286.      BANDPASS FILTER
  287.  
  288.  
  289.                          ***** IMPULSE RESPONSE *****
  290.  
  291.  THESE ARE UNSCALED RESULTS WHICH ARE NOT OPTIMIZED FOR FIXED POINT ARITHMETIC.
  292.  
  293.                     C(   1) =   .82876400E-02 = C(   9)
  294.                     C(   2) =  -.60614180E-01 = C(   8)
  295.                     C(   3) =  -.55091620E-01 = C(   7)
  296.                     C(   4) =   .29463406E+00 = C(   6)
  297.                     C(   5) =   .56901626E+00 = C(   5)
  298.  
  299.  
  300.   SCALED COEFFICIENTS IN DECIMAL AND IN FRACTIONAL TWO'S COMPLEMENT FORM.
  301.  
  302.           THIS FILTER'S GAIN =   4.90 dB. COMPARED TO THE OUTPUT PLOT.
  303.  
  304.           C(   1) =    .14564412E-01 = C(   9)        01DD
  305.           C(   2) =   -.10652126E+00 = C(   8)        F25E
  306.           C(   3) =   -.96816106E-01 = C(   7)        F39C
  307.           C(   4) =    .51777971E+00 = C(   6)        4246
  308.           C(   5) =    .99996948E+00 = C(   5)        7FFE
  309.  
  310.  
  311.                FREQUENCY RESPONSE AND PLOT OF THE UNSCALED FILTER
  312.  
  313.  
  314.   FREQUENCY (Hz)             NORMALIZED           FILTER GAIN
  315.                             SAMPLE RATE              (dB)
  316.  
  317.          .0                    .000                   -.5056
  318.        25.0                    .005                   -.5026
  319.        50.0                    .010                   -.4934
  320.        75.0                    .015                   -.4782
  321.       100.0                    .020                   -.4572
  322.       125.0                    .025                   -.4306
  323.       150.0                    .030                   -.3988
  324.       175.0                    .035                   -.3621
  325.       200.0                    .040                   -.3209
  326.       225.0                    .045                   -.2758
  327.       250.0                    .050                   -.2273
  328.       275.0                    .055                   -.1760
  329.       300.0                    .060                   -.1224
  330.       325.0                    .065                   -.0672
  331.       350.0                    .070                   -.0112
  332.       375.0                    .075                    .0451
  333.       400.0                    .080                    .1009
  334.       425.0                    .085                    .1555
  335.       450.0                    .090                    .2083
  336.       475.0                    .095                    .2583
  337.       500.0                    .100                    .3051
  338.       525.0                    .105                    .3478
  339.       550.0                    .110                    .3856
  340.       575.0                    .115                    .4181
  341.       600.0                    .120                    .4443
  342.       625.0                    .125                    .4637
  343.       650.0                    .130                    .4756
  344.       675.0                    .135                    .4793
  345.       700.0                    .140                    .4741
  346.       725.0                    .145                    .4594
  347.       750.0                    .150                    .4346
  348.       775.0                    .155                    .3991
  349.       800.0                    .160                    .3522
  350.       825.0                    .165                    .2933
  351.       850.0                    .170                    .2218
  352.       875.0                    .175                    .1372
  353.       900.0                    .180                    .0387
  354.       925.0                    .185                   -.0742
  355.       950.0                    .190                   -.2022
  356.       975.0                    .195                   -.3458
  357.      1000.0                    .200                   -.5056
  358.      1025.0                    .205                   -.6824
  359.      1050.0                    .210                   -.8768
  360.      1075.0                    .215                  -1.0894
  361.      1100.0                    .220                  -1.3209
  362.      1125.0                    .225                  -1.5722
  363.      1150.0                    .230                  -1.8438
  364.      1175.0                    .235                  -2.1366
  365.      1200.0                    .240                  -2.4514
  366.      1225.0                    .245                  -2.7891
  367.      1250.0                    .250                  -3.1506
  368.      1275.0                    .255                  -3.5369
  369.      1300.0                    .260                  -3.9491
  370.      1325.0                    .265                  -4.3881
  371.      1350.0                    .270                  -4.8554
  372.      1375.0                    .275                  -5.3522
  373.      1400.0                    .280                  -5.8798
  374.      1425.0                    .285                  -6.4400
  375.      1450.0                    .290                  -7.0344
  376.      1475.0                    .295                  -7.6648
  377.      1500.0                    .300                  -8.3336
  378.      1525.0                    .305                  -9.0429
  379.      1550.0                    .310                  -9.7955
  380.      1575.0                    .315                 -10.5943
  381.      1600.0                    .320                 -11.4429
  382.      1625.0                    .325                 -12.3452
  383.      1650.0                    .330                 -13.3058
  384.      1675.0                    .335                 -14.3301
  385.      1700.0                    .340                 -15.4245
  386.      1725.0                    .345                 -16.5966
  387.      1750.0                    .350                 -17.8560
  388.      1775.0                    .355                 -19.2142
  389.      1800.0                    .360                 -20.6862
  390.      1825.0                    .365                 -22.2910
  391.      1850.0                    .370                 -24.0546
  392.      1875.0                    .375                 -26.0129
  393.      1900.0                    .380                 -28.2186
  394.      1925.0                    .385                 -30.7535
  395.      1950.0                    .390                 -33.7575
  396.      1975.0                    .395                 -37.5027
  397.      2000.0                    .400                 -42.6524
  398.      2025.0                    .405                 -51.8526
  399.      2050.0                    .410                 -58.4713
  400.      2075.0                    .415                 -48.0415
  401.      2100.0                    .420                 -44.6600
  402.      2125.0                    .425                 -43.1637
  403.      2150.0                    .430                 -42.6618
  404.      2175.0                    .435                 -42.8666
  405.      2200.0                    .440                 -43.6961
  406.      2225.0                    .445                 -45.1986
  407.      2250.0                    .450                 -47.5913
  408.      2275.0                    .455                 -51.5095
  409.      2300.0                    .460                 -59.6586
  410.      2325.0                    .465                 -64.4729
  411.      2350.0                    .470                 -53.2338
  412.      2375.0                    .475                 -48.7840
  413.      2400.0                    .480                 -46.1724
  414.      2425.0                    .485                 -44.4982
  415.      2450.0                    .490                 -43.4370
  416.      2475.0                    .495                 -42.8437
  417.      2500.0                    .500                 -42.6524
  418.  
  419.  
  420.                  COMPRESSED FILTER RESPONSE (dB)
  421.        10]                                                  [  10
  422.         5]                                                  [   5
  423.         0]*************************    +         +         +[   0
  424.        -5]                        ******                    [  -5
  425.       -10]                             ****                 [ -10
  426.       -15]                                 **               [ -15
  427.       -20]         +         +         +     **  +         +[ -20
  428.       -25]                                     *            [ -25
  429.       -30]                                      *           [ -30
  430.       -35]                                       *          [ -35
  431.       -40]         +         +         +         *         +[ -40
  432.       -45]                                        * ***   **[ -45
  433.       -50]                                        **   * *  [ -50
  434.       -55]                                               *  [ -55
  435.       -60]         +         +         +         + *    *  +[ -60
  436.       -65]                                              *   [ -65
  437.       -70]                                                  [ -70
  438.       -75]                                                  [ -75
  439.           0      500.     1000.     1500.     2000.     2500.   FREQ. (Hz)
  440.  
  441.  
  442.  
  443.                     FILTER RESPONSE (dB)
  444.         1]                                                                                                     [    1
  445.         0]  **************************************+                   +                   +                   +[    0
  446.        -1]**                                      *****                                                        [   -1
  447.        -2]                                             ****                                                    [   -2
  448.        -3]                                                 **                                                  [   -3
  449.        -4]                                                   ***                                               [   -4
  450.        -5]                                                      **                                             [   -5
  451.        -6]                                                        **                                           [   -6
  452.        -7]                                                          \                                          [   -7
  453.        -8]                                                           **                                        [   -8
  454.        -9]                                                             \                                       [   -9
  455.       -10]                    +                   +                   + \                 +                   +[  -10
  456.       -11]                                                               **                                    [  -11
  457.       -12]                                                                 \                                   [  -12
  458.       -13]                                                                  \                                  [  -13
  459.       -14]                                                                   \                                 [  -14
  460.       -15]                                                                    \                                [  -15
  461.       -16]                                                                                                     [  -16
  462.       -17]                                                                     \                               [  -17
  463.       -18]                                                                      \                              [  -18
  464.       -19]                                                                       \                             [  -19
  465.       -20]                    +                   +                   +                   +                   +[  -20
  466.       -21]                                                                        \                            [  -21
  467.       -22]                                                                         \                           [  -22
  468.       -23]                                                                                                     [  -23
  469.       -24]                                                                          \                          [  -24
  470.       -25]                                                                                                     [  -25
  471.       -26]                                                                           \                         [  -26
  472.       -27]                                                                                                     [  -27
  473.       -28]                                                                            \                        [  -28
  474.       -29]                                                                                                     [  -29
  475.       -30]                    +                   +                   +                   +                   +[  -30
  476.       -31]                                                                             \                       [  -31
  477.       -32]                                                                                                     [  -32
  478.       -33]                                                                                                     [  -33
  479.       -34]                                                                              \                      [  -34
  480.       -35]                                                                                                     [  -35
  481.       -36]                                                                                                     [  -36
  482.       -37]                                                                                                     [  -37
  483.       -38]                                                                               \                     [  -38
  484.       -39]                                                                                                     [  -39
  485.       -40]                    +                   +                   +                   +                   +[  -40
  486.       -41]                                                                                                     [  -41
  487.       -42]                                                                                                     [  -42
  488.       -43]                                                                                \    ***          ***[  -43
  489.       -44]                                                                                        \        /   [  -44
  490.       -45]                                                                                    /    \           [  -45
  491.       -46]                                                                                                /    [  -46
  492.       -47]                                                                                                     [  -47
  493.       -48]                                                                                   /      \          [  -48
  494.       -49]                                                                                               /     [  -49
  495.       -50]                    +                   +                   +                   +                   +[  -50
  496.       -51]                                                                                                     [  -51
  497.       -52]                                                                                 \         \         [  -52
  498.       -53]                                                                                              /      [  -53
  499.       -54]                                                                                                     [  -54
  500.       -55]                                                                                                     [  -55
  501.       -56]                                                                                                     [  -56
  502.       -57]                                                                                                     [  -57
  503.       -58]                                                                                  *                  [  -58
  504.       -59]                                                                                                     [  -59
  505.       -60]                    +                   +                   +                   +           \       +[  -60
  506.       -61]                                                                                                     [  -61
  507.       -62]                                                                                                     [  -62
  508.       -63]                                                                                                     [  -63
  509.       -64]                                                                                             *       [  -64
  510.          ]..........|.........|.........|.........|.........|.........|.........|.........|.........|.........|....
  511.           0                500.               1000.               1500.               2000.               2500.
  512.                                    FREQUENCY (Hz)
  513.  
  514.  
  515.                                     END OF OUTPUT
  516.  
  517.  
  518.                    ***   START OF THE NEXT FILTER PROBLEM   ***
  519.                            THIS FILE IS;   A:DEMO
  520.  
  521.  BANDPASS FILTER
  522.  
  523.  THE NUMBER OF BANDS =    2
  524.  THE FILTER LENGTH  =    39
  525.  
  526.  BAND EDGES ARE NORMALIZED TO THE SAMPLING RATE.
  527.            EDGE #  1 =   .0000
  528.            EDGE #  2 =   .2000
  529.            EDGE #  3 =   .2500
  530.            EDGE #  4 =   .5000
  531.  
  532.  
  533.  BAND #  1 IS A STOPBAND
  534.  BAND #  2 IS A PASSBAND
  535.  
  536.  THE RELATIVE RIPPLE CONSTANTS ARE:
  537.  BAND #  1 RIPPLE CONSTANT =       1.00
  538.  BAND #  2 RIPPLE CONSTANT =       1.00
  539.  
  540.  
  541.                     FILTER RESPONSE (dB)
  542.         1]                                                                                                     [    1
  543.         0]                    +                   +        ****************************************************[    0
  544.        -1]                                                /                                                    [   -1
  545.        -2]                                               /                                                     [   -2
  546.        -3]                                                                                                     [   -3
  547.        -4]                                              /                                                      [   -4
  548.        -5]                                                                                                     [   -5
  549.        -6]                                             /                                                       [   -6
  550.        -7]                                                                                                     [   -7
  551.        -8]                                                                                                     [   -8
  552.        -9]                                            /                                                        [   -9
  553.       -10]                    +                   +                   +                   +                   +[  -10
  554.       -11]                                                                                                     [  -11
  555.       -12]                                                                                                     [  -12
  556.       -13]                                           /                                                         [  -13
  557.       -14]                                                                                                     [  -14
  558.       -15]                                                                                                     [  -15
  559.       -16]                                                                                                     [  -16
  560.       -17]                                                                                                     [  -17
  561.       -18]                                          /                                                          [  -18
  562.       -19]                                                                                                     [  -19
  563.       -20]                    +                   +                   +                   +                   +[  -20
  564.       -21]                                                                                                     [  -21
  565.       -22]                                                                                                     [  -22
  566.       -23]                                                                                                     [  -23
  567.       -24]                                                                                                     [  -24
  568.       -25]                                         /                                                           [  -25
  569.       -26]                                                                                                     [  -26
  570.       -27]                                                                                                     [  -27
  571.       -28]                                                                                                     [  -28
  572.       -29]                                                                                                     [  -29
  573.       -30]                    +                   +                   +                   +                   +[  -30
  574.       -31]                                                                                                     [  -31
  575.       -32]                                                                                                     [  -32
  576.       -33]                                                                                                     [  -33
  577.       -34]                                                                                                     [  -34
  578.       -35]                                                                                                     [  -35
  579.       -36]                                                                                                     [  -36
  580.       -37]                                                                                                     [  -37
  581.       -38]                                                                                                     [  -38
  582.       -39]                                                                                                     [  -39
  583.       -40]*    *    **   **   **   **   *    *  * /                   +                   +                   +[  -40
  584.       -41] \    \                        \  /                                                                  [  -41
  585.       -42]    /                                  *                                                             [  -42
  586.       -43]         /    /              /                                                                       [  -43
  587.       -44]                   /    /           \                                                                [  -44
  588.       -45]                 \    \    \                                                                         [  -45
  589.       -46]            \                                                                                        [  -46
  590.       -47]       \                                                                                             [  -47
  591.       -48]                                \                                                                    [  -48
  592.       -49]  \                                                                                                  [  -49
  593.       -50]                    +            *      +                   +                   +                   +[  -50
  594.       -51]   *                                                                                                 [  -51
  595.       -52]                                                                                                     [  -52
  596.       -53]                                                                                                     [  -53
  597.       -54]                                     *                                                               [  -54
  598.       -55]        *                                                                                            [  -55
  599.       -56]                                                                                                     [  -56
  600.       -57]                                                                                                     [  -57
  601.       -58]                                                                                                     [  -58
  602.       -59]             *                                                                                       [  -59
  603.       -60]                    +                   +                   +                   +                   +[  -60
  604.       -61]                                                                                                     [  -61
  605.       -62]                            *                                                                        [  -62
  606.       -63]                                                                                                     [  -63
  607.       -64]                                                                                                     [  -64
  608.       -65]                  *                                                                                  [  -65
  609.       -66]                                                                                                     [  -66
  610.       -67]                                                                                                     [  -67
  611.       -68]                                                                                                     [  -68
  612.       -69]                                                                                                     [  -69
  613.       -70]                    +  *                +                   +                   +                   +[  -70
  614.          ]..........|.........|.........|.........|.........|.........|.........|.........|.........|.........|....
  615.           0                  0.1                 0.2                 0.3                 0.4                 0.5
  616.                                              NORMALIZED SAMPLE RATE
  617.  
  618.  
  619.                                     END OF OUTPUT
  620.  
  621.  
  622.                    ***   START OF THE NEXT FILTER PROBLEM   ***
  623.                            THIS FILE IS;   A:DEMO
  624.  
  625.  BANDPASS FILTER
  626.  
  627.  THE NUMBER OF BANDS =    5
  628.  THE FILTER LENGTH  =   127
  629.  THE SAMPLING RATE IS                10000
  630.  
  631.  THE BAND EDGES ARE IN Hz.
  632.  
  633.            EDGE #  1 =                 .000
  634.            EDGE #  2 =              250.000
  635.            EDGE #  3 =              350.000
  636.            EDGE #  4 =              600.000
  637.            EDGE #  5 =              700.000
  638.            EDGE #  6 =             1500.000
  639.            EDGE #  7 =             1600.000
  640.            EDGE #  8 =             2500.000
  641.            EDGE #  9 =             2600.000
  642.            EDGE # 10 =             5000.000
  643.  
  644.  
  645.  BAND #  1 IS A STOPBAND
  646.  BAND #  2 IS A PASSBAND
  647.  BAND #  3 IS A STOPBAND
  648.  BAND #  4 IS A PASSBAND
  649.  BAND #  5 IS A STOPBAND
  650.  
  651.  THE RELATIVE RIPPLE CONSTANTS ARE:
  652.  BAND #  1 RIPPLE CONSTANT =       1.00
  653.  BAND #  2 RIPPLE CONSTANT =       1.00
  654.  BAND #  3 RIPPLE CONSTANT =       1.00
  655.  BAND #  4 RIPPLE CONSTANT =       1.00
  656.  BAND #  5 RIPPLE CONSTANT =       1.00
  657.  
  658.  
  659.                     FILTER RESPONSE (dB)
  660.         1]                                                                                                     [    1
  661.         0]       ******       +           *******************         +                   +                   +[    0
  662.        -1]                                                                                                     [   -1
  663.        -2]                                                                                                     [   -2
  664.        -3]                                                                                                     [   -3
  665.        -4]                                                                                                     [   -4
  666.        -5]                                                                                                     [   -5
  667.        -6]      /      \                                     \                                                 [   -6
  668.        -7]                               /                                                                     [   -7
  669.        -8]                                                                                                     [   -8
  670.        -9]                                                                                                     [   -9
  671.       -10]                    +                   +                   +                   +                   +[  -10
  672.       -11]                                                                                                     [  -11
  673.       -12]                                                                                                     [  -12
  674.       -13]                                                                                                     [  -13
  675.       -14]                                                                                                     [  -14
  676.       -15]                                                                                                     [  -15
  677.       -16]                                                                                                     [  -16
  678.       -17]                                                                                                     [  -17
  679.       -18]                                                                                                     [  -18
  680.       -19]                                                                                                     [  -19
  681.       -20]                    +                   +                   +                   +                   +[  -20
  682.       -21]                                                                                                     [  -21
  683.       -22]                                                                                                     [  -22
  684.       -23]                                                                                                     [  -23
  685.       -24]                                                                                                     [  -24
  686.       -25]                                                                                                     [  -25
  687.       -26]                                                                                                     [  -26
  688.       -27]   * /        \ *  *                                \ *  *    *  *       *  *    *  *    *  *       *[  -27
  689.       -28]                      * *  *                                *       * *       *                * *   [  -28
  690.       -29]                         \  \                              /                   \      **      /      [  -29
  691.       -30]                    +/                  +                   +      /   \        +                 \ +[  -30
  692.       -31]**  *          *                                     *         \           /              \          [  -31
  693.       -32]                 \                                      /                          /                 [  -32
  694.       -33]  *               *                                    *                          *        *         [  -33
  695.       -34]                                                                *         *                          [  -34
  696.       -35]                                                                                                   * [  -35
  697.       -36]                    *                                             *     *                            [  -36
  698.       -37]                                                                                                     [  -37
  699.       -38]                                                                                             *       [  -38
  700.       -39]                                                          *                     *                    [  -39
  701.       -40]                    +                   +                   +                   +                   +[  -40
  702.       -41]                                                                                                     [  -41
  703.       -42]                                                                                     *               [  -42
  704.       -43]                                                                                        *            [  -43
  705.       -44]                                                                                                     [  -44
  706.       -45]                          *                                                                          [  -45
  707.       -46]                                                                                                     [  -46
  708.       -47]                                                             *                                       [  -47
  709.       -48]                       *     \                                                                       [  -48
  710.       -49]                                                                             *                       [  -49
  711.       -50]                    +                   +                   +                   +                   +[  -50
  712.       -51]                                                                                                     [  -51
  713.       -52]                                                                                                *    [  -52
  714.       -53]                                                                                                     [  -53
  715.       -54]                                                                                                     [  -54
  716.       -55]                                                                                                     [  -55
  717.       -56]                                                                                                     [  -56
  718.       -57]                                                                                                     [  -57
  719.       -58]                              *                                                                      [  -58
  720.       -59]                                                                                                     [  -59
  721.       -60]                    +                   +                   +                   +                   +[  -60
  722.       -61]                                                                                                     [  -61
  723.       -62]                                                                                                     [  -62
  724.       -63]                                                                                                     [  -63
  725.       -64]                                                                                                     [  -64
  726.       -65]                                                                     *                               [  -65
  727.          ]..........|.........|.........|.........|.........|.........|.........|.........|.........|.........|....
  728.           0               1000.               2000.               3000.               4000.               5000.
  729.                                    FREQUENCY (Hz)
  730.  
  731.  
  732.                                     END OF OUTPUT
  733.  
  734.                    ***   START OF THE NEXT FILTER PROBLEM   ***
  735.                            THIS FILE IS;   A:DEMO
  736.  
  737.  BANDPASS FILTER
  738.  
  739.  THE NUMBER OF BANDS =    3
  740.  THE FILTER LENGTH  =    99
  741.  THE SAMPLING RATE IS                 8000
  742.  
  743.  THE BAND EDGES ARE IN Hz.
  744.  
  745.            EDGE #  1 =                 .000
  746.            EDGE #  2 =             2000.000
  747.            EDGE #  3 =             2500.000
  748.            EDGE #  4 =             3000.000
  749.            EDGE #  5 =             3500.000
  750.            EDGE #  6 =             4000.000
  751.  
  752.  
  753.  BAND #  1 IS A STOPBAND
  754.  BAND #  2 IS A PASSBAND
  755.  BAND #  3 IS A STOPBAND
  756.  
  757.  THE RELATIVE RIPPLE CONSTANTS ARE:
  758.  BAND #  1 RIPPLE CONSTANT =       1.00
  759.  BAND #  2 RIPPLE CONSTANT =       1.00
  760.  BAND #  3 RIPPLE CONSTANT =       1.00
  761.  
  762.  
  763.                     FILTER RESPONSE (dB)
  764.         1]                                                                                                     [    1
  765.         0]                    +                   +                   ******************* +                   +[    0
  766.        -1]                                                           /                   \                     [   -1
  767.        -2]                                                          /                                          [   -2
  768.        -3]                                                                                \                    [   -3
  769.        -4]                                                         /                                           [   -4
  770.        -5]                                                                                 \                   [   -5
  771.        -6]                                                                                                     [   -6
  772.        -7]                                                        /                                            [   -7
  773.        -8]                                                                                                     [   -8
  774.        -9]                                                                                  \                  [   -9
  775.       -10]                    +                   +                   +                   +                   +[  -10
  776.       -11]                                                                                                     [  -11
  777.       -12]                                                       /                                             [  -12
  778.       -13]                                                                                                     [  -13
  779.       -14]                                                                                                     [  -14
  780.       -15]                                                                                   \                 [  -15
  781.       -16]                                                                                                     [  -16
  782.       -17]                                                                                                     [  -17
  783.       -18]                                                                                                     [  -18
  784.       -19]                                                      /                                              [  -19
  785.       -20]                    +                   +                   +                   +                   +[  -20
  786.       -21]                                                                                                     [  -21
  787.       -22]                                                                                                     [  -22
  788.       -23]                                                                                    \                [  -23
  789.       -24]                                                                                                     [  -24
  790.       -25]                                                                                                     [  -25
  791.       -26]                                                                                                     [  -26
  792.       -27]                                                                                                     [  -27
  793.       -28]                                                     /                                               [  -28
  794.       -29]                                                                                                     [  -29
  795.       -30]                    +                   +                   +                   +                   +[  -30
  796.       -31]                                                                                                     [  -31
  797.       -32]                                                                                                     [  -32
  798.       -33]                                                                                                     [  -33
  799.       -34]                                                                                     \               [  -34
  800.       -35]                                                                                                     [  -35
  801.       -36]                                                                                                     [  -36
  802.       -37]                                                                                                     [  -37
  803.       -38]                                                                                                     [  -38
  804.       -39]                                                                                                     [  -39
  805.       -40]                    +                   +           /       +                   +                   +[  -40
  806.       -41]                                                                                                     [  -41
  807.       -42]                                                                                                     [  -42
  808.       -43]                                                                                                     [  -43
  809.       -44]                                                                                                     [  -44
  810.       -45]                                                                                                     [  -45
  811.       -46]                                                                                                     [  -46
  812.       -47]                                                                                                     [  -47
  813.       -48]                                                                                                     [  -48
  814.       -49]                                                                                      \              [  -49
  815.       -50]                    +                   +                   +                   +                   +[  -50
  816.       -51]                                                                                                     [  -51
  817.       -52]                                                                                                     [  -52
  818.       -53]                                                                                                     [  -53
  819.       -54]                                                                                                     [  -54
  820.       -55]                                                                                                     [  -55
  821.       -56]                                                                                                     [  -56
  822.       -57]                                                                                                     [  -57
  823.       -58]                                                                                                     [  -58
  824.       -59]                                                   /                                                 [  -59
  825.       -60]                    +                   +                   +                   +                   +[  -60
  826.       -61]                                                                                                     [  -61
  827.       -62]                                                                                                     [  -62
  828.       -63]                                                                                                     [  -63
  829.       -64]                                                                                                     [  -64
  830.       -65]                                                                                                     [  -65
  831.       -66]                                                                                                     [  -66
  832.       -67]                                                                                                     [  -67
  833.       -68]                                                                                                     [  -68
  834.       -69]                                                                                                     [  -69
  835.       -70]                    +                   +                   +                   +                   +[  -70
  836.       -71]                                                                                                     [  -71
  837.       -72]                                                                                                     [  -72
  838.       -73]                                                                                       \             [  -73
  839.       -74]                                                                                                     [  -74
  840.       -75]                                                                                                     [  -75
  841.       -76]                                                                                                     [  -76
  842.       -77]                                                                                                     [  -77
  843.       -78]                                                                                                     [  -78
  844.       -79]                                                                                                     [  -79
  845.       -80]                    +                   +                   +                   +                   +[  -80
  846.       -81]                                                                                                     [  -81
  847.       -82]                                                                                                     [  -82
  848.       -83]                                                                                                     [  -83
  849.       -84]                                                                                                     [  -84
  850.       -85]                                                                                                     [  -85
  851.       -86]                                                                                                     [  -86
  852.       -87]                                                                                                     [  -87
  853.       -88]                                                                                                     [  -88
  854.       -89]                                                                                                     [  -89
  855.       -90]                    +                   +                   +                   +                   +[  -90
  856.       -91]                                                                                                     [  -91
  857.       -92]                                                                                                     [  -92
  858.       -93]                                                                                                     [  -93
  859.       -94]                                                                                                     [  -94
  860.       -95]                                                                                                     [  -95
  861.       -96]                                                                                                     [  -96
  862.       -97]                                                                                                     [  -97
  863.       -98]                                                                                                     [  -98
  864.       -99]                                                                                                     [  -99
  865.      -100]                    +                   +                   +                   +                   +[ -100
  866.      -101]                                                                                                     [ -101
  867.      -102]                                                                                                     [ -102
  868.      -103]* *                * *                     *     **                                                 *[ -103
  869.      -104]    * *        * *     * *               *   *  /                                          *    * *  [ -104
  870.      -105]        *  * *             * *         *                                                     *       [ -105
  871.      -106]                               * * * *                                                    /   \      [ -106
  872.      -107]         **                     * * * *       \                                                      [ -107
  873.      -108]            *                 *                                                                *     [ -108
  874.      -109]       *                    *           *                                                            [ -109
  875.      -110]                    +     *             +                   +                   +                   +[ -110
  876.      -111]     *        *                                                                         \            [ -111
  877.      -112]                                                                                                     [ -112
  878.      -113]                        *                                                                            [ -113
  879.      -114]                                          *    *                                                 *   [ -114
  880.      -115]                *                                                                                    [ -115
  881.      -116]   *                                                                                        *        [ -116
  882.      -117]                      *                                                                              [ -117
  883.      -118]                                                                                         *           [ -118
  884.      -119]                                                                                                     [ -119
  885.      -120]                    +                   +                   +                   +                   +[ -120
  886.      -121]                                                                                                     [ -121
  887.      -122]                                                                                                     [ -122
  888.      -123]                  *                                                                                  [ -123
  889.      -124]                                                                                                   * [ -124
  890.      -125] *                                          *                                                        [ -125
  891.      -126]                                                                                                     [ -126
  892.      -127]                                                                                                     [ -127
  893.      -128]                                                                                                     [ -128
  894.      -129]                    *                                                                                [ -129
  895.          ]..........|.........|.........|.........|.........|.........|.........|.........|.........|.........|....
  896.           0                800.               1600.               2400.               3200.               4000.
  897.                                    FREQUENCY (Hz)
  898.  
  899.                                     END OF OUTPUT
  900.  
  901.  
  902.  
  903.  *****************************************************************
  904.  *                                                               *
  905.  *  Please send (    ) copies of Firplot for PC/CLONES to:       *
  906.  *                                                               *
  907.  *     NAME:                                                     *
  908.  *                                                               *
  909.  *  ADDRESS:                                                     *
  910.  *                                                               *
  911.  *     CITY:                                                     *
  912.  *                                                               *
  913.  *  A copy of the manual is included with each copy of FIRPLOT,  *
  914.  *  which is licensed for a single machine.                      *
  915.  *                                                               *
  916.  *                        Price per copy is   $45.00             *
  917.  *  Indiana residents add 5% state sales tax( $ 2.25 )           *
  918.  *                                                               *
  919.  *     A check or money order is inclosed for $       .          *
  920.  *                                                               *
  921.  *        Mail your order to:       Paul Selwa                   *
  922.  *                                  61 East Tilden Drive         *
  923.  *                                  Brownsburg, Indiana 46112    *
  924.  *                                                               *
  925.  *****************************************************************